#ifndef DBSQLGLOBAL_H
#define DBSQLGLOBAL_H

#include "cnsMacroGlobal.h"
#include <QSqlQueryModel>
#include <QTableView>
#include <QStandardItemModel>
#include <QSqlRecord>
#include <QSqlQuery>
#include <QCompleter>
#include "log/cnslogger.h"
#include <QSortFilterProxyModel>
#include <QFileSystemModel>
#include <QTreeView>

class CnsSqlQueryModel: public QSqlQueryModel
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsSqlQueryModel(): QSqlQueryModel()
    {
    }
};

class CnsTableView: public QTableView
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsTableView(): QTableView()
    {
    }
};

class CnsSortFilterProxyModel: public QSortFilterProxyModel
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsSortFilterProxyModel(): QSortFilterProxyModel()
    {
    }
};

class CnsStandardItemModel: public QStandardItemModel
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsStandardItemModel(): QStandardItemModel()
    {
    }
};

class CnsWidget: public QWidget
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsWidget(): QWidget()
    {
    }
};

class CnsFileSystemModel : public QFileSystemModel
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsFileSystemModel(): QFileSystemModel()
    {
    }
};

class CnsTreeView : public QTreeView
{
    Q_OBJECT
public:
    Q_INVOKABLE CnsTreeView(): QTreeView()
    {
    }
};

CNS_DECL_METATYPE(CnsTreeView);

CNS_DECL_METATYPE(CnsSqlQueryModel);

CNS_DECL_METATYPE(CnsTableView);

CNS_DECL_METATYPE(CnsSortFilterProxyModel);

CNS_DECL_METATYPE(CnsStandardItemModel);

CNS_DECL_METATYPE(CnsWidget);

CNS_DECL_METATYPE(CnsFileSystemModel);

#endif // DBSQLGLOBAL_H
